﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestionaleLib;
using GestionaleLib.Controller;

namespace Leaf.View.Fornitori
{
    public partial class frmGestisciFornitori : Form
    {
        private frmElencoFornitori RifElencoFornitori;
        private Persona Persona;
        private FormStatus.StatoForm StatoForm;

        Fornitore Fornitori = new Fornitore();

        public frmGestisciFornitori(frmElencoFornitori RifElencoFornitori,
            Fornitore FornitoreModifica = null, FormStatus.StatoForm StatoForm = FormStatus.StatoForm.Nuovo)
        {
            InitializeComponent();
            this.RifElencoFornitori = RifElencoFornitori;
            if (FornitoreModifica != null)
                this.Fornitori = FornitoreModifica;
            this.StatoForm = StatoForm;
            ImpostaStato();
        }

        private void ImpostaStato()
        {
            switch (StatoForm)
            {
                case FormStatus.StatoForm.Nuovo:
                    this.Text = "Nuovo Fornitore";
                    break;
                case FormStatus.StatoForm.Modifica:
                    this.Text = "Modifica Fornitore";
                    LeggiCampiModifica();
                    break;
            }
        }

        private void LeggiCampiModifica()
        {

            txtRagSoc.Text = Fornitori.RagioneSociale;
            txtCAP.Text = Fornitori.Cap;
            txtCitta.Text = Fornitori.Citta;
            txtCellulare.Text = Fornitori.Cellulare;
            txtCodFisc.Text = Fornitori.CodiceFiscale;
            txtCognome.Text = Fornitori.Cognome;
            txtNome.Text = Fornitori.Nome;
            txtPIva.Text = Fornitori.PartitaIva;
            txtEmail.Text = Fornitori.Email;
            txtFax.Text = Fornitori.Fax;
            txtIndirizzo.Text = Fornitori.Indirizzo;
            txtTelefono.Text = Fornitori.Telefono;
            txtSedeAmministrativa.Text = Fornitori.SedeAmministrativa;
            txtSedeLegale.Text = Fornitori.SedeLegale;
            txtAnnotazioni.Text = Fornitori.Annotazioni;

        }

        private void Salva()
        { 
            if (txtRagSoc.Text.Trim().Equals(""))
                {
                    MessageBox.Show("I campi non sono stati inseriti", "", MessageBoxButtons.OK
                        , MessageBoxIcon.Warning);
                    return;
                }
            try
            {
                Fornitori.RagioneSociale = txtRagSoc.Text;
                Fornitori.Cap = txtCAP.Text;
                Fornitori.Citta = txtCitta.Text;
                Fornitori.Cellulare = txtCellulare.Text;
                Fornitori.CodiceFiscale = txtCodFisc.Text;
                Fornitori.Cognome = txtCognome.Text;
                Fornitori.Nome = txtNome.Text;
                Fornitori.PartitaIva = txtPIva.Text;
                Fornitori.Email = txtEmail.Text;
                Fornitori.Fax = txtFax.Text;
                Fornitori.Indirizzo = txtIndirizzo.Text;
                Fornitori.Telefono = txtTelefono.Text;
                Fornitori.SedeLegale = txtSedeLegale.Text;
                Fornitori.SedeAmministrativa = txtSedeAmministrativa.Text;
                Fornitori.Annotazioni = txtAnnotazioni.Text;
                if (StatoForm == FormStatus.StatoForm.Nuovo)
                {
                    new ctrlFornitori().Nuovo(Fornitori);
                }
                else if (StatoForm == FormStatus.StatoForm.Modifica)
                {
                    new ctrlFornitori().Modifica(Fornitori);
                }
                this.Close();
            }
            catch 
            {
                throw new ExceptionErroreModifica();
            }

        }

        private void frmGestisciFornitori_Load(object sender, EventArgs e)
        {

        }

        private void cmdSalva_Click(object sender, EventArgs e)
        {
            Salva();
            
        }
    }
}
